The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which may be unique on their own.
Although relational databases have dominated the commercial landscape for structured information management in the past few decades, graph-oriented databases have recently begun to gain renewed favor and interest. In part, this is a result of a move away from the traditional needs of having to maintain and update hardware and software technology, and toward the acceptance of Software As A Service (“SAAS”) providers and “cloud computing” vendors as alternative ways to implement computer-based systems and services. Also, there is a realization that some applications fit graph-oriented data models better than they do relational data models. These tend to be applications in which there is some relationship between data objects, and queries involving graph operations such as finding certain types of paths or connections between data objects are thus important for analyzing data in these applications.
Databases may be designed for storage of graphical structures to represent information. Graphs can be used to represent many different types of information including issues of practical interest and importance, and graphs often provide helpful visualization of how the data objects are connected and/or related. For example, in chemistry, molecules can be modeled with nodes representing atoms and edges representing the bonds between atoms. This allows tasks from simple construction to complex behavior analysis to be carried out using computer simulations. Vaccines and other new medicines and compositions can thus be modeled and studied effectively using graphical models.
In biology, an environment can be modeled using nodes to represent regions or habitats for certain species and edges to represent migratory patterns between the regions. Such a model might be used, for example, to track the spread of disease, or to study how the species' presence impacted natural vegetative growth, or to measure the impact that movement of one species has on the movement of another species, etc. In sociology, a social network can be modeled using nodes to represent individuals within the network and edges to represent the connections or relationships between the individuals.
As noted, a typical graph structure for a graph-oriented database represents the significant objects or entities of interest as a set of nodes, connected by edges, the edges describing the relationship or connection between nodes. Further, the nodes and edges may also have properties.
There are several graph-oriented database products available and/or presently in use. For example, Pregel is Google's graph engine, designed to mine relationships from graphs, but it is not capable of delivering real time search results as it is a batch process. Neo4J is an open-source NOSQL graph database, providing an object-oriented, flexible structure with transactional capability, but it is not horizontally scalable. HyperGraphDB is a general purpose distributed storage mechanism using a standard key/value store nomenclature to handle graph nodes and edges.
It remains an objective of database designers, architects and researchers to find improved methods of storing and accessing data for use in data operations.